package StringClass;


// 字符串基础：


public class Test {
    public static void main(String[] args) {
        // 删除空格
        String s = " a  bcde fg  ";
        System.out.println(s.trim());    // 删除左右两边的空格，不删除中间的
    }

    public static void main7(String[] args) {
        // 字符串截取
        String s = "abcdefg";
        System.out.println(s.substring(2));     // 截取从2位置的所有字符

        // 左闭右开
        System.out.println(s.substring(1,4));
    }

    public static void main6(String[] args) {
        // 字符串分割
        String s1 = "abc bdf poi";
        String[] ret = s1.split(" ");
        for (String s : ret) {
            System.out.println(s);
        }

        // 字符串分割，分成 limit 份
        ret = s1.split(" ", 2);
        for (String s : ret) {
            System.out.println(s);
        }

        // 多个分割符，用 ｜ 表示； &|= 表示以&和=来分割字符串
        String s2 = "192&168=1";
        ret = s2.split("&|=");
        for (String s : ret) {
            System.out.println(s);
        }
    }


    public static void main5(String[] args) {
        // 格式化生成字符串
        String s = String.format("%d-%d-%d", 2023, 11, 9);
        System.out.println(s);
    }

    public static void main4(String[] args) {
        // 字符串转数组
        String s1 = "abcdef";
        char[] chs = s1.toCharArray();
        for (int i = 0; i < chs.length; ++i) {
            System.out.print(chs[i] + " ");
        }
        System.out.println();
    }

    public static void main3(String[] args) {
        // 数字转字符串
        String s1 = String.valueOf(123);    // 可以发现，valueof都是static方法，可以通过<类名.方法名>调用
        System.out.println(s1);

        // 字符串转数字
        String s2 = "123";
        System.out.println(Integer.parseInt(s2));
        System.out.println(Float.parseFloat(s2));

        // 大小写转换
        String s3 = "hello";
        System.out.println(s3.toUpperCase());
    }

    public static void main2(String[] args) {
        String s1 = "hello";

        // charAt 也是从 0 开始编号的
        char ch = s1.charAt(2);
        System.out.println(ch);

        // 返回某个字符第一次出现的位置
        System.out.println(s1.indexOf('l', 3));     // 从 fromIndex 位置找到 ch 字符第一次出现的位置
        System.out.println(s1.indexOf("el"));
        System.out.println(s1.lastIndexOf('e'));    // 从后往前找

    }


    public static void main1(String[] args) {
        System.out.println("xx".length());    // 是要是个字符串，不一定要是变量就可以用 .length 方法

        String s1 = "abc";
        String s2 = new String("abc");
        System.out.println(s1.equals(s2));
        System.out.println(s1.equalsIgnoreCase(s2));     // 忽略大小写比较

        String s3 = "125";
        String s4 = "124";
        System.out.println(s3.compareTo(s4));
        System.out.println(s3.compareToIgnoreCase(s4));   // 忽略大小写进行比较
    }
}
